package com.zyz.demo.utils;

import lombok.extern.slf4j.Slf4j;
import org.springframework.util.DigestUtils;

import java.nio.charset.StandardCharsets;
import java.util.UUID;

@Slf4j
public class SecretUtils {
    // 加密
    public static String encrypt(String password) {
        String salt = UUID.randomUUID().toString().replace("-", "");
        // md5加密(salt+password)
        String secretMd5 = DigestUtils.md5DigestAsHex((salt + password).getBytes(StandardCharsets.UTF_8));
        // 数据库存储  盐值+密文
        return salt + secretMd5;
    }

    // 校验
    public static Boolean verify(String inputPassword, String sqlPassword) {
        if (sqlPassword == null || sqlPassword.length() != 64) {
            log.error("sqlPassword: {} 密码长度不足",sqlPassword);
            return false;
        }
        String salt = sqlPassword.substring(0,32);
        String userMd5 = DigestUtils.md5DigestAsHex((salt + inputPassword).getBytes(StandardCharsets.UTF_8));

        return (salt + userMd5).equals(sqlPassword);
    }
}
